
#ifndef __SYSTASK_H
#define	__SYSTASK_H

#include <stdint.h>
#include <mytype.h>

#ifdef	__cplusplus
extern "C" {
#endif
	
#ifdef   _SYSTASK_MODULE_
#define  MY_EXT
#else
#define  MY_EXT  extern
#endif  

MY_EXT uint8_t ExtOutSt;
MY_EXT uint8_t ExtInSt;

#define EXTIO_MSK_BEEP           0x01
#define EXTIO_MSK_APINT          0x02
#define EXTIO_MSK_DCMI_PWDN      0x04
#define EXTIO_MSK_USB_PWR        0x08
#define EXTIO_MSK_EXIO           0x10
#define EXTIO_MSK_9DINT          0x20
#define EXTIO_MSK_RS485RE        0x40
#define EXTIO_MSK_ETH_RESET      0x80

#define EXTIO_INPUTMSK           (EXTIO_MSK_APINT|EXTIO_MSK_9DINT)

#define BeepOut(x)           (x)?(ExtOutSt|=EXTIO_MSK_BEEP):(ExtOutSt&=(~EXTIO_MSK_BEEP))
#define BeepOutSt()          (ExtOutSt&EXTIO_MSK_BEEP)
#define DcmiPowerDownOut(x)  (x)?(ExtOutSt|=EXTIO_MSK_DCMI_PWDN):(ExtOutSt&=(~EXTIO_MSK_DCMI_PWDN))
#define UsbPowerOut(x)       (x)?(ExtOutSt|=EXTIO_MSK_USB_PWR):(ExtOutSt&=(~EXTIO_MSK_USB_PWR))
#define ExioOut(x)           (x)?(ExtOutSt|=EXTIO_MSK_EXIO):(ExtOutSt&=(~EXTIO_MSK_EXIO))
#define RS485REOut(x)        (x)?(ExtOutSt|=EXTIO_MSK_RS485RE):(ExtOutSt&=(~EXTIO_MSK_RS485RE))
#define EthResetOut(x)       (x)?(ExtOutSt|=EXTIO_MSK_ETH_RESET):(ExtOutSt&=(~EXTIO_MSK_ETH_RESET))

#undef MY_EXT

#ifdef	__cplusplus
}
#endif

#endif	/* __SYSTASK_H */
